package affichage;


import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

import regles.Regle;
import regles.TypeScenario;

import terrain.Terrain;
import unite.TypeCombat;

import deroulementjeu.Partie;


/**
 * Fenêtre qui affiche le panel TerrainView et l'EditeurMenuDroit pour
 * éditer une carte
 * @author Alexis BRASY, Geoffrey LEQUESNE, Sandrine PIRIOU, Michel POPOV
 *
 */
public class EditeurView extends JFrame {

    /** Entier nécessaire à la sérialisation */
    private static final long serialVersionUID = 1L;
    /** La vue du terrain */
    private TerrainView pan;
    /** La partie */
    private Partie partie;

    
    /**
     * Constructeur d'un EditeurView
     * @param p la partie
     * @param menu la fenêtre du menu principal
     */
    public EditeurView(Partie p, Fenetre menu) {
        this.setTitle("Editeur de cartes");
		
        this.setSize(800, 600);

        this.setSize((int) getToolkit().getScreenSize().getWidth(),
                ((int) getToolkit().getScreenSize().getHeight() - 40));
		
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLocationRelativeTo(null);
		
        this.partie = p;
        
        Regle r = new Regle(TypeCombat.ASSAUT, TypeScenario.GOTTAKILLTHEMALL, 3,
                3, 3, 3);
        Terrain t = new Terrain(10, 10, r);

        this.partie = new Partie(r, t);
        
        pan = new TerrainView(partie, this, true);
        pan.setPreferredSize(
                new Dimension(
                        pan.getTerrain().getNbColonnes()
                                * pan.getCaseTerrainView().get(0).get(0).getHexaWidth()
                                        + pan.getCaseTerrainView().get(0).get(0).getHexaWidth()
                                                / 2,
                                                pan.getTerrain().getNbLignes()
                                                        * pan.getCaseTerrainView().get(0).get(0).getHexaSide()
                                                                + pan.getCaseTerrainView().get(0).get(0).getHexaHeight()
                                                                - pan.getCaseTerrainView().get(0).get(0).getHexaSide()));
    	
        JScrollPane _scroll = new JScrollPane(pan);

        _scroll.setHorizontalScrollBarPolicy(
                JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        _scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
     		
        this.setLayout(new BorderLayout());
        JPanel right = new JPanel();
    	
        EditeurMenuDroit editeur = new EditeurMenuDroit(this, this.partie, pan,
                menu);

        right.add(editeur);
        pan.setMenu(editeur);
        this.getContentPane().add(_scroll, BorderLayout.CENTER);	        	
        this.getContentPane().add(right, BorderLayout.EAST);
 	
    }
}
